Master-slave system with triggered remote function calls

ABSTRACT

Triggered remote function calls can be used in master-slave systems to trigger slave-side software functions pre-loaded by a master into slave MCU memory, with associated parameters pre-loaded into a slave function interface memory. A master issues trigger-function signals (such as rising/falling edges or signal levels) over a trigger-function signal line. The slave includes a trigger conditioning block that in response issues a trigger-function request to the slave MCU, which calls/executes the associated software function, including accessing the associated trigger-function parameters from function interface memory. A slave can include a hardware function block with functionality configurable by a pre-loaded software configuration function (with associated parameters). A master can include a hardware function block configured to issue trigger-function signals. The slave (trigger conditioning block) can be configured to service trigger-function signals as an IRQ (interrupt request) to the MCU, which executes an ISR (interrupt service routine) as a triggered function call.

CROSS-REFERENCE TO RELATED APPLICATIONS

Priority is claimed under USC§119(e) to US Provisional Application 62/035,222 (Docket TI-75209PS), filed Aug. 8, 2014.

BACKGROUND

1 Technical Field.

This Patent Document relates generally to master/host-slave systems, including slave configuration/function control.

2. Related Art.

In a master/host-slave system, a master/host processor commonly communicates with slave devices, such as MCU (microcontroller units) through a standardized communication bus, such as SPI, I2C (referred to as com links).

System design flexibility for both masters and slaves can be enhanced by the integration of hardware function blocks requiring control, operation or configuration that is not practical over these com links. For example, a master can integrate hardware function blocks such as hardware state machines or hardware accelerators that need to send real-time requests to slaves (including slave-side hardware function blocks) that are not practical over these com links because either these hardware blocks are not configured for the communication protocol, or these com links are too slow to support real-time function requests. Also, a slave can integrate hardware function blocks such as phase locked loops and transmitter/receivers that require real-time configuration/control that again is not practical over these com links.

One approach is using slave-side hardware state machines or software interrupt service routines. However, because customer requirements change, it can be problematic to re-configure/update slave-side hardware function blocks. It is also problematic for traditional interrupt service routines to handle complex requests requiring a number of input parameters.

BRIEF SUMMARY

This Brief Summary is provided as a general introduction to the Disclosure provided by the Detailed Description and Drawings, summarizing aspects and features of the Disclosure. It is not a complete overview of the Disclosure, and should not be interpreted as identifying key elements or features of, or otherwise characterizing or delimiting the scope of, the disclosed invention.

The Disclosure describes a triggered remote function call methodology suitable for use in a master-slave system to trigger slave-side software functions pre-loaded by a master into slave MCU memory, with associated parameters pre-loaded into a slave function interface memory. A master issues trigger-function signals (such as rising/falling edges or signal levels) over a trigger-function signal line. The slave includes a trigger conditioning block that in response issues a trigger-function request to the slave MCU, which calls/executes the associated software function, including accessing the associated trigger-function parameters from function interface memory. A slave can include a hardware function block with functionality configurable by a pre-loaded software configuration function (with associated parameters). A master can include a hardware function block configured to issue trigger-function signals. The slave (trigger conditioning block) can be configured to service trigger-function signals as an IRQ (interrupt request) to the MCU, which executes an ISR (interrupt service routine) as a triggered function call.

Other aspects and features of the invention claimed in this Patent Document will be apparent to those skilled in the art from the following Disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example functional embodiment of master/host-slave system configured to use triggered remote function calls for slave-side software functions pre-loaded by the master into slave/MCU memory, with associated parameters pre-loaded into a function interface memory, including a dedicated trigger-function signal line over which the master issues trigger-function signals (such as rising/falling edges or signal levels).

DETAILED DESCRIPTION

This Description and the Drawings constitute a Disclosure of a triggered remote function call methodology, such for a master/slave system including controlling slave side hardware functionality/configuration.

As used in this Disclosure, master/host and slave are generic for networked devices configured to implement a triggered remote function call methodology according to this Disclosure.

In brief overview, the Disclosed triggered remote function calls can be used in master-slave systems to trigger slave-side software functions pre-loaded by a master into slave MCU memory, with associated parameters pre-loaded into a slave function interface memory. A master issues trigger-function signals (such as rising/falling edges or signal levels) over a trigger-function signal line. The slave includes a trigger conditioning block that in response issues a trigger-function request to the slave MCU, which calls/executes the associated software function, including accessing the associated trigger-function parameters from function interface memory. A slave can include a hardware function block with functionality configurable by a pre-loaded software configuration function (with associated parameters). A master can include a hardware function block configured to issue trigger-function signals. The slave (trigger conditioning block) can be configured to service trigger-function signals as an IRQ (interrupt request) to the MCU, which executes an ISR (interrupt service routine) as a triggered function call.

FIG. 1 illustrates an example functional embodiment of master/host-slave system configured to use triggered remote function calls for slave-side software functions pre-loaded by the master into slave/MCU memory, with associated parameters pre-loaded into a function interface memory, including a dedicated trigger-function signal line over which the master issues trigger-function signals (such as rising/falling edges or signal levels).

The master issues a trigger-function signal to request a triggered remote software function call. The master can include hardware function blocks configured to issue trigger-function signals.

Software function name and all of its parameters are loaded prior to triggering a remote function call for the software function. Hence, when a trigger-function signal is sent, the slave MCU will call/execute the software function requested by the master, with all the function parameters pre-loaded into function interface memory.

The trigger-function signal characteristic can be, for example, a rising/falling signal edge, or a signal level.

Triggered remote function call procedure can include: (1) master pre-loads into MCU memory the software function (function definition), and pre-loads into function-interface memory the associated function_parameters, including function_name/index; (2) master issues a trigger-function signal to the slave (over the dedicated trigger-function signal line), requesting call/execution of this software function; (3) slave issues, for example, an IRQ (interrupt service request) for an ISR (interrupt service routine) that reads the function-interface-memory to determine the software function requested by the master (function_name/index); (4) requested software function is called with the associated parameters stored in the function interface memory; and the slave/MCU executes the software function called by the triggered remote function call.

Masters can specify slave-side functions as interrupt service routines, which can be updated by the master.

Master can specify all function parameters, including updating/changing the parameters, that control slave response to a triggered function call request.

Slave can respond to master trigger function call requests, including requests from master-integrated hardware function/control blocks, according to pre-configured (and reconfigurable) functions/parameters.

Using triggered function calls according to this Disclosure, certain slave IC (integrated circuit) features can be soft-defined.

As one example, a slave with an on-chip PLL, but without a hardware re-lock function, can re-lock the PLL in response to trigger-function control signal (such as a rising edge). A PLL_re-lock function is pre-loaded into MCU/function interface memory. Trigger conditioning block is configured to respond to a PLL_re-lock trigger-function control signal by issuing an IRQ to the slave/MCU.

As another example, a master-side communication application can require TDD ON/OFF functionality for slave-side receiver/transmitter blocks, but, for example, due to ambiguity with respect to which sub-functionality in the receiver/transmitter block is being on/off toggled, this TDD ON/OFF functionality is not implemented in the receiver/transmitter hardware. A TDD-ON-OFF_function is pre-loaded into the MCU/function interface memory. This function can include a case statement that executes a different sequence based on rising or falling edges of a trigger-function control signal. The trigger conditioning block can be configured to set a flag that indicates whether a rising or falling edge was last observed, and trigger the appropriate IRQ when either occurs.

Thus, master trigger-function requests are configurable, and reconfigurable. Reconfiguration of the software function and/or its parameters in between occurrences of trigger-function control signal events can be used to reconfigure, the slave-side response to the trigger-function control signal that initiates a triggered remote function call. That is, from the same trigger-function control signal, master can request slave execution of different tasks according to the pre-loaded software function.

The latency for execution of a software function in response to a trigger-function control signal is faster than regular software function execution through corn links such as I2C or SPI. The latency can be as low as the task switching time of the slave/MCU. This allows real-time requests, and can be comparable to hardware based control.

In addition, triggered remote function call methodology can reduce SOC (system on chip) design risk because some missing features can be patched as a triggered remote function call (such as using IRQ/ISR functionality).

Similarly, the feature allows the design of a device with generic, albeit application specific, hardware resources, and define specific application related device behavior via custom functions and/or parameters. Such a device could include reserved areas in MCU/code memory, together with the associated trigger-function signal pins and trigger conditioning block.

The Disclosure provided by this Description and the Figures sets forth example embodiments and applications illustrating aspects and features of the invention, and does not limit the scope of the invention, which is defined by the claims. Known circuits, functions and operations are not described in detail to avoid obscuring the principles and features of the invention. These example embodiments and applications can be used by ordinarily skilled artisans as a basis for modifications, substitutions and alternatives to construct other embodiments, including adaptations for other applications. 

1. A system with master and slave devices, comprising a master device; a slave device including: a microcontroller unit (MCU) configured to call and execute software functions; an MCU memory configured to store one or more software functions; a function interface memory configured to store parameters for one or more functions; a data bus interfaced to the master and slave devices; a trigger-function signal line between the master and slave devices; the master device configured to communicate software functions to the slave device over the data bus, for storage in the MCU memory, and communicate function parameters for associated functions to the slave device for storage in the function interface memory; the master device further configured to issue trigger-function signals to the slave device over the trigger-function signal line, a trigger function signal associated with a software function stored in the slaved device MCU memory; the slave device further including a trigger conditioning block interfaced to the trigger-function signal line, and configured to respond to a trigger-function signal by issuing a trigger-function request to the MCU; the MCU further configured to respond to the trigger-function request by calling and executing the software function associated with the a trigger-function signal, including accessing the associated trigger-function parameters from function interface memory.
 2. The system of claim 1, wherein the slaved device further includes a hardware function block with functionality configurable by a software configuration function; and the master device is further configured to pre-load into MCU memory the software configuration function, and to pre-load associated parameters into function interface memory.
 3. The system of claim 1 wherein the master device further includes a hardware function block configured to issue a trigger-function signal to the slave device; and the master device is further configured to pre-load into MCU memory a software function associated with the trigger-function signal issuable by the hardware function block, and to pre-load associated parameters into function interface memory.
 4. The system of claim 1, wherein in response to the trigger-function signal, the trigger conditioning block is further configured to issue an IRQ (interrupt request) to the MCU, and the MCU is further configured to execute an ISR (interrupt service routine) in response to the IRQ to call the software function associated with the trigger-function signal. 